library(tidyverse)
library(plotly)
getStarts <- function(d){
s = d %>% select(Stage, Nodes, Time, y) %>%
group_by(Stage, Nodes) %>%
summarise(Start=min(Time), y=min(y)) %>% arrange(Start)
return(s)
}
RESEARCH_HOME = "/home/and/Documents/PhD/Research"
lines = readLines(paste0(RESEARCH_HOME, "/Scripts/R/Benchmarks/MultiAndSingleNode/R12/aws/monitor.txt"))
lines = lines[grepl("\\|SCALE\\|", lines)]
monitor = as_tibble(lines) %>%
separate(value, into=c("Timestamp", "Scale", "Time", "ID", "Nodes", "Stage", "RDDs", "Task", "Dura", "Load"), sep="\\|") %>%
separate(ID, into=c(NA, NA, "ID"), sep="_") %>%
select(ID, Time, Nodes, Stage, RDDs, Task, Load) %>%
mutate(Time=as.numeric(Time), RDDs=as.numeric(RDDs), Tasks=as.numeric(Task), Load=as.numeric(Load)) %>%
group_by(ID, Time, Nodes, Stage) %>% summarise(RDDs=mean(RDDs), Tasks=mean(Tasks), Load=mean(Load))
head(monitor)
d = monitor %>% filter(ID %in% c("0028","0029","0030")) %>% ungroup %>%
mutate(y = Load) %>%
select(Time, y, Nodes, Stage) %>%
arrange(Time)
starts = getStarts(d)
starts$Label = ""
starts[starts$Stage == "count at MF.scala:194", "Label"] = "<br>Maximal disk find start"
starts[starts$Stage == "rdd at MF.scala:223", "Label"] = "<br>Maximal disk find end"
p = ggplot(data = d, aes(x = Time, y = y, group = 1, color = Nodes, linetype = Nodes)) +
geom_line() +
geom_point(data = starts, aes(x=Start, y=y, group=1, color=Nodes, text = paste0(Stage,"<br>Start: ",Start,", Load: ",y,"<br>",Label)))
Ignoring unknown aesthetics: text
ggplotly(p, tooltip = c("text"))
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHBsb3RseSkKCmdldFN0YXJ0cyA8LSBmdW5jdGlvbihkKXsKICBzID0gZCAlPiUgc2VsZWN0KFN0YWdlLCBOb2RlcywgVGltZSwgeSkgJT4lIAogICAgZ3JvdXBfYnkoU3RhZ2UsIE5vZGVzKSAlPiUgCiAgICBzdW1tYXJpc2UoU3RhcnQ9bWluKFRpbWUpLCB5PW1pbih5KSkgJT4lIGFycmFuZ2UoU3RhcnQpCiAgcmV0dXJuKHMpCn0KYGBgCgpgYGB7cn0KUkVTRUFSQ0hfSE9NRSA9ICIvaG9tZS9hbmQvRG9jdW1lbnRzL1BoRC9SZXNlYXJjaCIKbGluZXMgPSByZWFkTGluZXMocGFzdGUwKFJFU0VBUkNIX0hPTUUsICIvU2NyaXB0cy9SL0JlbmNobWFya3MvTXVsdGlBbmRTaW5nbGVOb2RlL1IxMi9hd3MvbW9uaXRvci50eHQiKSkKbGluZXMgPSBsaW5lc1tncmVwbCgiXFx8U0NBTEVcXHwiLCBsaW5lcyldCm1vbml0b3IgPSBhc190aWJibGUobGluZXMpICU+JQogIHNlcGFyYXRlKHZhbHVlLCBpbnRvPWMoIlRpbWVzdGFtcCIsICJTY2FsZSIsICJUaW1lIiwgIklEIiwgIk5vZGVzIiwgIlN0YWdlIiwgIlJERHMiLCAiVGFzayIsICJEdXJhIiwgIkxvYWQiKSwgc2VwPSJcXHwiKSAlPiUKICBzZXBhcmF0ZShJRCwgaW50bz1jKE5BLCBOQSwgIklEIiksIHNlcD0iXyIpICU+JQogIHNlbGVjdChJRCwgVGltZSwgTm9kZXMsIFN0YWdlLCBSRERzLCBUYXNrLCBMb2FkKSAlPiUKICBtdXRhdGUoVGltZT1hcy5udW1lcmljKFRpbWUpLCBSRERzPWFzLm51bWVyaWMoUkREcyksIFRhc2tzPWFzLm51bWVyaWMoVGFzayksIExvYWQ9YXMubnVtZXJpYyhMb2FkKSkgJT4lCiAgZ3JvdXBfYnkoSUQsIFRpbWUsIE5vZGVzLCBTdGFnZSkgJT4lIHN1bW1hcmlzZShSRERzPW1lYW4oUkREcyksIFRhc2tzPW1lYW4oVGFza3MpLCBMb2FkPW1lYW4oTG9hZCkpCmhlYWQobW9uaXRvcikKYGBgCgpgYGB7cn0KZCA9IG1vbml0b3IgJT4lIGZpbHRlcihJRCAlaW4lIGMoIjAwMjgiLCIwMDI5IiwiMDAzMCIpKSAlPiUgdW5ncm91cCAlPiUgCiAgbXV0YXRlKHkgPSBMb2FkKSAlPiUKICBzZWxlY3QoVGltZSwgeSwgTm9kZXMsIFN0YWdlKSAlPiUgCiAgYXJyYW5nZShUaW1lKSAKc3RhcnRzID0gZ2V0U3RhcnRzKGQpCmBgYAoKYGBge3J9CnN0YXJ0cyRMYWJlbCA9ICIiCnN0YXJ0c1tzdGFydHMkU3RhZ2UgPT0gImNvdW50IGF0IE1GLnNjYWxhOjE5NCIsICJMYWJlbCJdID0gIjxicj5NYXhpbWFsIGRpc2sgZmluZCBzdGFydCIKc3RhcnRzW3N0YXJ0cyRTdGFnZSA9PSAicmRkIGF0IE1GLnNjYWxhOjIyMyIsICJMYWJlbCJdID0gIjxicj5NYXhpbWFsIGRpc2sgZmluZCBlbmQiCgpwID0gZ2dwbG90KGRhdGEgPSBkLCBhZXMoeCA9IFRpbWUsIHkgPSB5LCBncm91cCA9IDEsIGNvbG9yID0gTm9kZXMsIGxpbmV0eXBlID0gTm9kZXMpKSArCiAgZ2VvbV9saW5lKCkgKwogIGdlb21fcG9pbnQoZGF0YSA9IHN0YXJ0cywgYWVzKHg9U3RhcnQsIHk9eSwgZ3JvdXA9MSwgY29sb3I9Tm9kZXMsIHRleHQgPSBwYXN0ZTAoU3RhZ2UsIjxicj5TdGFydDogIixTdGFydCwiLCBMb2FkOiAiLHksIjxicj4iLExhYmVsKSkpCmBgYAoKYGBge3J9CmdncGxvdGx5KHAsIHRvb2x0aXAgPSBjKCJ0ZXh0IikpCmBgYAoKCg==